/* 
需求：有三个文件 data/1.txt(1) data/2.txt(2) data/3.txt(3) 希望可以顺序的读取 1.txt 2.txt 3.txt 的内容。
翻译：
    1. 先读 1.txt
    2. 读完之后，在读 2.txt
    3. 读完之后，在读 3.txt
*/
const fs = require('fs');


/* 现在的写法肯定是不可以的，因为每个操作都是异步的 */

/* 异步嵌套，回调嵌套 是可以完成功能的。但是不利于开发者阅读和维护。人习惯阅读同步模型的代码。后面有解决方案 async + await 
    一般称之为 回调地狱 callback hell。

    在实际开发中我们是不希望出现回调地狱的写法，因为这样不利于开发效率。我们想办法减少回调地狱的写法，或者是换一种写法改变回调地狱。
    

*/
fs.readFile('./data/1.txt', {
    encoding: 'utf-8'
}, (err, data) => {
    if (err) {
        console.log(err);
        return;
    }
    console.log(data);
    // 1.txt 肯定读取完毕
    fs.readFile('./data/2.txt', {
        encoding: 'utf-8'
    }, (err, data) => {
        if (err) {
            console.log(err);
            return;
        }
        console.log(data);
        // 2.txt 读取完毕
        fs.readFile('./data/3.txt', {
            encoding: 'utf-8'
        }, (err, data) => {
            if (err) {
                console.log(err);
                return;
            }
            console.log(data);
        });
    });


});